﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ServicioSocial.Clases;

namespace ServicioSocial
{
    public partial class VentanaNuevoCuestionario : Form
    {
        static DataTable miTabla = new DataTable();
        public static string nombreCuestionario;
        public static int CveEntCatAsignatura;
        private static int CveEntPregunta;
        public static int EstatusVentana; // si es 1 activa si es cero se cierra
        public static int CveEntCuestionario;
        public static bool CrearNuevo;
        protected VentanaNuevoCuestionarioInicio miInicioCuestionario;

        public VentanaNuevoCuestionario()
        {
            InitializeComponent();
            miInicioCuestionario = new VentanaNuevoCuestionarioInicio();
            CrearNuevo = false;
        }

        private void actualizaTablasYCombos()
        {
            txtNombreCuestionario.Text = nombreCuestionario;
            //cmBxAsignatura.DataSource = CatAsignaturas.buscaTodasAsignaturas();
            //cmBxAsignatura.DisplayMember = "Nombre";
            //cmBxAsignatura.ValueMember = "ClaveEntidad";
        }

        private void dgvRespuestaBreve_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            CveEntPregunta = Convert.ToInt32(dgvRespuestaBreve.Rows[dgvRespuestaBreve.SelectedCells[0].RowIndex].Cells[0].Value);

        }

        //private DataTable creaTabla()
        //{
        //    miTabla.Columns.Add(new DataColumn("Pregunta", typeof(string)));
        //    miTabla.Columns.Add(new DataColumn("Valor", typeof(int)));
        //    miTabla.Columns.Add(new DataColumn("Estatus", typeof(int)));
        //    return miTabla;
        //}


        //private void AgregaFila(string Pregunta, int Puntuacion)
        //{
        //    DataRow dr = miTabla.NewRow();
        //    dr["Pregunta"] = txtPregunta.Text;
        //    dr["Valor"] = txtPuntuacion.Text;
        //    //El campo estatus quedara 1 para los que estan almacenados en la base, 2 para los que se agregan desde la ventana
        //    dr["Estatus"] = 2;
        //    miTabla.Rows.Add(dr);
        //}

        private void btnAgregar_Click(object sender, EventArgs e)
        {
            if ((txtPregunta.Text != string.Empty) && (txtPuntuacion.Text) != string.Empty)
            {
                string pregunta = txtPregunta.Text;
                int puntuacion = Convert.ToInt32(txtPuntuacion.Text);
                if ((RespuestaBreve.insertaParaVisualizar(pregunta, puntuacion, 1, CveEntCuestionario) == true))
                {
                    //AgregaFila(pregunta, puntuacion);
                    LimpiarControles();
                    ActualizaGrid();
                    txtPregunta.Focus();
                }
                else
                    MessageBox.Show("Error");

            }
            else
                MessageBox.Show("LLene todos los campos por favor");
        }

        private void LimpiarControles()
        {
            txtPregunta.Text = string.Empty;
            txtPuntuacion.Text = string.Empty;
        }

        private void contextMenuStripEliminar_Click(object sender, EventArgs e)
        {
            

        }

        private void ActualizaGrid()
        {
            CveEntCuestionario = Cuestionario.buscaElUltimoCuestionario();
            dgvRespuestaBreve.DataSource = RespuestaBreve.visualizaSolamente(CveEntCuestionario);
            dgvRespuestaBreve.Columns[0].Visible = false;
            dgvRespuestaBreve.Columns[3].Visible = false;
            dgvRespuestaBreve.Columns[4].Visible = false;
            lblNoCuestionario.Text = CveEntCuestionario.ToString();
            txtDescripcion.Text = Cuestionario.buscaPorCveEntCestionario(CveEntCuestionario).Rows[0].ItemArray[2].ToString();
        }

        private void dgvRespuestaBreve_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
        {
            int CveEntReactivo = Convert.ToInt32(dgvRespuestaBreve.Rows[dgvRespuestaBreve.SelectedCells[0].RowIndex].Cells[0].Value);
            if ((RespuestaBreve.actualizaEstatusReactivo(CveEntCuestionario, CveEntReactivo, 0) == true))
            {
                
            }

        }

        private void btnAceptarOpcionMultiple_Click(object sender, EventArgs e)
        {
            OpcionMultiple miOM = new OpcionMultiple();
            miOM.CveEntCuestionario = CveEntCuestionario;
            miOM.Pregunta = txtPreguntaOM.Text;
            miOM.Valor = Convert.ToInt32(mskTxtPuntuacionOM.Text);
            miOM.Estatus = 1;
            miOM.RespuestaCorrecta = txtResCorrOM.Text;
            miOM.Distractor1 = txtDistractor1OM.Text;
            miOM.Distractor2 = txtDistractor2OM.Text;
            miOM.Distractor3 = txtDistractor3OM.Text;
            if (OpcionMultiple.insertarPregunta(miOM))
                CargaGridOpcionMultiple();
            else
                MessageBox.Show("Error");
        }

        public void CargaGridOpcionMultiple()
        {
            dgvOpcionMultiple.DataSource = OpcionMultiple.buscaTodosXcuestionario(CveEntCuestionario);
        }

        private void VerificarCrearNuevo()
        {
            miInicioCuestionario.ShowDialog();
            if (CrearNuevo)
            {
                ActualizaGrid();
                actualizaTablasYCombos();
                CargaGridOpcionMultiple();
            }
            else
            {
                //this.Close();
            }

        }

        private void VentanaNuevoCuestionario_Load(object sender, EventArgs e)
        {
            VerificarCrearNuevo();

        }
    }
}
